Visible Range Mean Deviation Histogram [LuxAlgo]This script displays a histogram from the mean and standard deviation of the visible price values on the chart. Bin counting is done relative to high/low prices instead of counting the price values within each bin, returning a smoother histogram as a result.
Settings
Bins Per Side: Number of bins computed above and below the price mean
Deviation Multiplier: Standard deviation multiplier
Style
Relative: Determines whether the bins length is relative to the maximum bin count, with a length controlled with the width settings to the left.
Bin Colors: Bin/POC Lines colors
Show POCs: Shows point of controls
Usage
Histograms are generally used to estimate the underlying distribution of a series of observations, their construction is generally done taking into account the overall price range.
The proposed histogram construct N intervals above*below the mean of the visible price, with each interval having a size of: σ × Mult / N , where σ is the standard deviation and N the number of Bins per side and is determined by the user. The standard deviation multipliers are highlighted at the left side of each bin.
A high bin count reflects a higher series of observations laying within that specific interval, this can be useful to highlight ranging price areas.
POCs highlight the most significant bins and can be used as potential support/resistances.
在腳本中搜尋"point of control"
Institutional Volume Profile# Institutional Volume Profile (IVP) - Advanced Volume Analysis Indicator
## Overview
The Institutional Volume Profile (IVP) is a sophisticated technical analysis tool that combines traditional volume profile analysis with institutional volume detection algorithms. This indicator helps traders identify key price levels where significant institutional activity has occurred, providing insights into market structure and potential support/resistance zones.
## Key Features
### 🎯 Volume Profile Analysis
- **Point of Control (POC)**: Identifies the price level with the highest volume activity
- **Value Area**: Highlights the price range containing a specified percentage (default 70%) of total volume
- **Multi-Row Distribution**: Displays volume distribution across 10-50 price levels for detailed analysis
- **Customizable Period**: Analyze volume profiles over 10-500 bars
### 🏛️ Institutional Volume Detection
- **Pocket Pivot Volume (PPV)**: Detects bullish institutional buying when up-volume exceeds recent down-volume peaks
- **Pivot Negative Volume (PNV)**: Identifies bearish institutional selling when down-volume exceeds recent up-volume peaks
- **Accumulation Detection**: Spots potential accumulation phases with high volume and narrow price ranges
- **Distribution Analysis**: Identifies distribution patterns with high volume but minimal price movement
### 🎨 Visual Customization Options
- **Multiple Color Schemes**: Heat Map, Institutional, Monochrome, and Rainbow themes
- **Bar Styles**: Solid, Gradient, Outlined, and 3D Effect rendering
- **Volume Intensity Display**: Visual intensity based on volume magnitude
- **Flexible Positioning**: Left or right side profile placement
- **Current Price Highlighting**: Real-time price level indication
### 📊 Advanced Visual Features
- **Volume Labels**: Display volume amounts at key price levels
- **Gradient Effects**: Multi-step gradient rendering for enhanced visibility
- **3D Styling**: Shadow effects for professional appearance
- **Opacity Control**: Adjustable transparency (10-100%)
- **Border Customization**: Configurable border width and styling
## How It Works
### Volume Distribution Algorithm
The indicator analyzes each bar within the specified period and distributes its volume proportionally across the price levels it touches. This creates an accurate representation of where trading activity has been concentrated.
### Institutional Detection Logic
- **PPV Trigger**: Current up-bar volume > highest down-volume in lookback period + above volume MA
- **PNV Trigger**: Current down-bar volume > highest up-volume in lookback period + above volume MA
- **Accumulation**: High volume + narrow range + bullish close
- **Distribution**: Very high volume + minimal price movement
### Value Area Calculation
Starting from the POC, the algorithm expands both upward and downward, adding volume until reaching the specified percentage of total volume (default 70%).
## Configuration Parameters
### Profile Settings
- **Profile Period**: 10-500 bars (default: 50)
- **Number of Rows**: 10-50 levels (default: 24)
- **Profile Width**: 10-100% of screen (default: 30%)
- **Value Area %**: 50-90% (default: 70%)
### Institutional Analysis
- **PPV Lookback Days**: 5-20 periods (default: 10)
- **Volume MA Length**: 10-200 periods (default: 50)
- **Institutional Threshold**: 1.0-2.0x multiplier (default: 1.2)
### Visual Controls
- **Bar Style**: Solid, Gradient, Outlined, 3D Effect
- **Color Scheme**: Heat Map, Institutional, Monochrome, Rainbow
- **Profile Position**: Left or Right side
- **Opacity**: 10-100%
- **Show Labels**: Volume amount display toggle
## Interpretation Guide
### Volume Profile Elements
- **Thick Horizontal Bars**: High volume nodes (strong support/resistance)
- **Thin Horizontal Bars**: Low volume nodes (weak levels)
- **White Line (POC)**: Strongest support/resistance level
- **Blue Highlighted Area**: Value Area (fair value zone)
### Institutional Signals
- **Blue Triangles (PPV)**: Bullish institutional buying detected
- **Orange Triangles (PNV)**: Bearish institutional selling detected
- **Color-Coded Bars**: Different colors indicate institutional activity types
### Color Scheme Meanings
- **Heat Map**: Red (high volume) → Orange → Yellow → Gray (low volume)
- **Institutional**: Blue (PPV), Orange (PNV), Aqua (Accumulation), Yellow (Distribution)
- **Monochrome**: Grayscale intensity based on volume
- **Rainbow**: Color-coded by price level position
## Trading Applications
### Support and Resistance
- POC acts as dynamic support/resistance
- High volume nodes indicate strong price levels
- Low volume areas suggest potential breakout zones
### Institutional Activity
- PPV above Value Area: Strong bullish signal
- PNV below Value Area: Strong bearish signal
- Accumulation patterns: Potential upward breakouts
- Distribution patterns: Potential downward pressure
### Market Structure Analysis
- Value Area defines fair value range
- Profile shape indicates market sentiment
- Volume gaps suggest potential price targets
## Alert Conditions
- PPV Detection at current price level
- PNV Detection at current price level
- PPV above Value Area (strong bullish)
- PNV below Value Area (strong bearish)
## Best Practices
1. Use multiple timeframes for confirmation
2. Combine with price action analysis
3. Pay attention to volume context (above/below average)
4. Monitor institutional signals near key levels
5. Consider overall market conditions
## Technical Notes
- Maximum 500 boxes and 100 labels for optimal performance
- Real-time calculations update on each bar close
- Historical analysis uses complete bar data
- Compatible with all TradingView chart types and timeframes
---
*This indicator is designed for educational and informational purposes. Always combine with other analysis methods and risk management strategies.*
Support and ResistanceThis indicator, titled "Support and Resistance," is designed to identify and display key price levels based on volume and pivot points. It's a versatile tool that can be adapted for different market views and timeframes.
Key Features
Market View Options
The indicator offers three market view settings:
Short term
Standard
Long term
These settings affect the lookback periods used in calculations, allowing users to adjust the indicator's sensitivity to market movements.
Volume-Based Levels
The indicator calculates support and resistance levels using a rolling Point of Control (POC) derived from volume data. This approach helps identify price levels where the most trading activity has occurred.
Pivot Points
In addition to volume-based levels, the indicator incorporates pivot points to identify potential support and resistance areas.
Customizable Appearance
Users can adjust:
Number of lines to display (1-8)
Colors for support and resistance levels
Line thickness based on level importance
Calculation Methods
Rolling POC
The indicator uses a custom function f_rolling_poc to calculate the rolling Point of Control. This function analyzes volume distribution across price levels within a specified lookback period.
Pivot Points
Both standard and quick pivot points are calculated using the rolling POC as input, rather than traditional price data.
Level Importance
The indicator assigns importance to each level based on:
Number of touches (how often price has interacted with the level)
Duration (how long the level has been relevant)
This importance score determines the thickness of the displayed lines.
Unique Aspects
Dynamic Line Thickness: Lines become thicker when levels overlap, highlighting potentially stronger support/resistance areas.
Adaptive Coloring: The color of each line changes dynamically based on whether the current price is above or below the level, indicating whether it's acting as support or resistance.
Flexible Time Frames: The market view options allow the indicator to be easily adapted for different trading styles and timeframes.
Potential Uses
This indicator could be valuable for:
Identifying key price levels for entry and exit points
Recognizing potential breakout or breakdown levels
Understanding the strength of support and resistance based on line thickness
Adapting analysis to different market conditions and timeframes
Overall, this "Support and Resistance" indicator offers a sophisticated approach to identifying key price levels, combining volume analysis with pivot points and providing visual cues for level importance and current market position.
This Support and Resistance indicator is provided for informational and educational purposes only. It should not be considered as financial advice or a recommendation to buy or sell any security. The indicator's calculations are based on historical data and may not accurately predict future market movements. Trading decisions should be made after thorough research and consultation with a licensed financial advisor. The creator of this indicator is not responsible for any losses incurred from its use. Past performance does not guarantee future results. Use at your own risk.
EM Visible Range Volume Profile█ OVERVIEW
ᴇᴍ VRVP (Visible Range Volume Profile) indicator calculates the volume profile within the visible range of prices.
Volume Profile is an advanced technical analysis indicator that shows trading activity over a specified period of time at certain price levels.
The indicator plots a histogram on the chart that reflects dominant or significant price levels based that are based on volume.
VP concept
VP Components
Open, High, Low, Close:
There are different types of volume profile indicators but the majority of them will designate the OHLC.
Point of Control:
A price level with the most traded volume during one session, also known as POC.
High Volume Node (HVN):
Area of high volume relative to surrounding price action.
Low Volume Node (LVN):
Area of low volume relative to surrounding price action.
Analysis of price in relation to high and low volume nodes is useful when building context around your trades.
█ VOLUME PROFILE STRATEGIES
The distribution of a volume profile can help you determine the strength of a trend and spot potential reversal zones. Let’s take a look at the five different distribution types.
Neutral D
In order for price to break away from value, either the buyers or the sellers will have to become more aggressive than the other side. When this occurs, it gives us with a vital piece of information.
Now we know who were the agressors at this price level: either the buyers or the sellers. That's why this is a good level for a trading setup if the price bounces back.
Bearish P and Bullish P
Bearish P — reversal. Bullish P — confirmation.
Bearish Ь and Bullish Ь
Bearish Ь — confirmation. Bullish Ь — reversal.
Examples
█ INPUTS
Width — amplitude of the VP histogram.
Grid — the number of columns of the VP histogram.
Delta of volumes — combinatorial determination of the ratios of sellers and buyers.
In quoted units — conversion in units of quoted currency.
Logarithmic scale — recalculation the grid step to the logarithmic scale of the chart.
HTF — (Higher Timeframe) calculation of VP for the period of the selected timeframe. ISO: Isolated computation in HTF period.
Palette: Total volume, Volume of buyers, Volume of sellers, HTF bars.
Warnings: colour of the «⚠» icon, language of information in the Tooltip.
Addition: ᴇᴍ CHN-RMA — a grid of moving averages with periods of centered hexagonal numbers.
█ ОБЩИЕ СВЕДЕНИЯ
ᴇᴍ VRVP (Visible Range Volume Profile) рассчитывает профиль объёма в видимом диапазоне цен.
Профиль объёма — это продвинутый индикатор технического анализа, который показывает торговую активность за условленный период времени на определённых ценовых уровнях.
Индикатор строит на графике гистограмму, отражающую доминирующие или значимые ценовые уровни, основанные на объёме.
█ НАСТРОЙКИ
Ширина — амплитуда гистограммы VP.
Сетка — количество колонок гистограммы VP.
Дельта объёмов — комбинаторное определение соотношений продаж и покупок.
В котируемых единицах — пересчёт в единицах котируемой валюты.
Логарифмическая шкала — пересчёт шага сетки на логарифмическую шкалу графика.
HTF — (Higher Timeframe) расчёт VP за период выбранного таймфрейма. ISO: Изолированное вычисление в HTF-периоде.
Палитра: Суммарный объём, Объём покупок, Объём продаж, Бары HTF.
Предупреждения: цвет значка «⚠», язык информации в Tooltip.
Дополнение: ᴇᴍ CHN-RMA — сетка скользящих средних с периодами центрированных гексагональных чисел.
Volume Profile PlusThis indicator provides a high-resolution and high-precision implementation of Volume Profile with flexible range settings. Its key features include:
1. Support for a high resolution of up to 2,500 rows.
2. Capability to examine lower timeframe bars (default 5,000 intra-bars) for enhanced precision.
3. Three range modes — "Visible Range", "Anchored Range", and "All Range".
4. Highlighting of Point of Control and Value Area.
5. Extensive customization options allowing users to configure dimensions, on-chart placements, and color schemes.
🔵 Settings
The settings screen, along with the explanations for each setting, is provided below:
🔵 High Resolution using Polyline
Inspired by @fikira, this indicator utilizes the newly introduced `polyline` type in PineScript to plot the volume profile. It employs a single polyline instance to represent the entire histogram. With each polyline instance supporting up to 10,000 points and each histogram row requiring 4 points, this indicator can accommodate 2500 rows, resulting in a significantly higher resolution compared to conventional volume profile indicators that use `line`s or `box`es to draw the histogram.
🔵 High Precision Data-binning using Lower Timeframe Data
Conventional volume profile indicators often face one or both of the following limitations:
1. They only consider volume within the chart's current timeframe.
2. They assign each bar's total volume to a single price bucket based on the bar's average price, rather than distributing volume across multiple price buckets.
As a result, when the number of bars in the chart is low, those indicators may provide imprecise results, making it difficult to accurately identify significant volume nodes and the point of control.
To address these limitations and enhance accuracy, this indicator examines data from lower timeframes and distributes the volume to fine-grained price buckets. It intelligently selects an appropriate lower timeframe to ensure precise output while complying with a maximum specified number of bars to maintain good performance.
🔵 Three Range Modes
This indicator offers users the flexibility to choose from three range modes:
1. Visible Range (Default Mode): In this mode, the volume profile calculation begins at the time of the left-most bar displayed in the current viewport. As the user scrolls through the viewport, the volume profile updates automatically.
2. Anchored Range: This mode allows the user to set the start time either by using the datetime input boxes or by dragging the anchor line on the chart.
3. All Range: In this mode, the volume profile calculation is based on all the historical bars available in the chart.
Market Profile with Past SessionsThis script plots market profiles that show the amount of time price has remained at a particular level during past sessions, often referred to as "time price opportunity".
TV user @LonesomeTheBlue created the original Market Profile indicator on which this script is based. This version makes minor changes to the automatic timeframes, and to show historic market profiles and points of control.
The market profile drawing begins at the START of the relevant session being profiled and extends to the right. There is a checkbox in the options that will plot the market profile at the END of the relevant session, if desired.
If you want to view the market profiles for shorter or longer sessions, use the drop down menu to take the Higher Time Frame setting off "Auto", and instead select a specific time interval that is HIGHER than the timeframe your chart is showing.
The market profile and points of control can be used to identify areas likely to serve as potential support or resistance, as well areas where price is likely to retest when it is ranging.
Advanced Volume Profile Levels (Working)This indicator is a powerful tool for traders who use volume profile analysis to identify significant price levels. It automatically calculates and plots the three most critical levels derived from volume data—the Point of Control (POC), Value Area High (VAH), and Value Area Low (VAL)—for three different timeframes simultaneously: the previous week, the previous day, and the current, live session.
The primary focus of this indicator is unmatched readability. It features dynamic, floating labels that stay clear of price action, combined with a high-contrast design to ensure you can see these crucial levels at a glance without any visual clutter.
Key Features
Multi-Session Analysis: Gain a complete market perspective by viewing levels from different timeframes on a single chart.
Weekly Levels: Identify the long-term areas of value and control from the prior week's trading activity.
Daily Levels: Pinpoint the most significant levels from the previous day's Regular Trading Hours (9:30 AM - 4:00 PM ET).
Current Session Levels: Track the developing value area and POC in real-time with a dynamic profile that updates with every bar.
Advanced Visuals for Clarity:
Floating Labels: The labels for the weekly and daily levels intelligently "float" on the right side of your chart, moving with the price to ensure they are never obscured by candles.
High-Contrast Design: Labels are designed for maximum readability with solid, opaque backgrounds and an automatic text color (black or white) that provides the best contrast against your chosen level color.
Trailing Current Levels: The labels for the current session neatly trail the most recent price action, providing an intuitive view of intra-day developments.
Comprehensive Customization: Tailor the indicator's appearance to your exact preferences.
Toggle each profile (Weekly, Daily, Current) on or off.
Individually set the color, line style (solid, dashed, dotted), and line width for each set of levels.
Adjust the text size, background transparency, and horizontal offset for all on-chart labels.
Information Hub:
On-Chart Price Labels: Each label clearly displays both the level name and its precise price (e.g., "D-POC: 22068.50").
Corner Table: An optional, clean table in the top-right corner provides a quick summary of all active weekly and daily level values.
Built-in Alerts:
Create alerts directly from the script to be notified whenever the price crosses above or below the weekly or daily Point of Control, helping you stay on top of key market movements.
How to Use
The levels provided by this indicator serve as powerful reference points for market activity:
Point of Control (POC): The price level with the highest traded volume. It acts as a magnet for price and represents the area of "fair value" for that session. Markets often test or revert to the POC.
Value Area High (VAH) & Value Area Low (VAL): These levels define the range where approximately 70% of the session's volume occurred. They are critical support and resistance zones.
Price acceptance above the VAH may signal a bullish breakout.
Price acceptance below the VAL may signal a bearish breakdown.
Rejection at the VAH or VAL often leads to price moving back across the value area towards the POC.
VolumeProfileLibrary "VolumeProfile"
Analyzes volume and price and calculates a volume profile, in particular the Point Of Control and Value Area values.
new(rowSizeInTicks, valueAreaCoverage, startTime)
Constructor method that creates a new Volume Profile
Parameters:
rowSizeInTicks (float) : Internal row size (aka resolution) of the volume profile. Useful for most futures contracts would be '1 / syminfo.mintick'. Default '4'.
valueAreaCoverage (int) : Percentage of total volume that is considered the Value Area. Default '70'
startTime (int) : Start time (unix timestamp in milliseconds) of the Volume Profile. Default 'time'.
Returns: VolumeProfile object
method calculatePOC(vp)
Calculates current Point Of Control of the VP
Namespace types: VolumeProfile
Parameters:
vp (VolumeProfile)
Returns: void
method calculateVA(vp)
Calculates current Value Area High and Low of the VP
Namespace types: VolumeProfile
Parameters:
vp (VolumeProfile)
Returns: void
method update(vp, h, l, v, t)
Processes new chart data and sorts volume into rows. Then calls calculatePOC() and calculateVA() to update the VP. Parameters are usually the output of request.security_lower_tf.
Namespace types: VolumeProfile
Parameters:
vp (VolumeProfile)
h (array) : Array of highs
l (array) : Array of lows
v (array) : Array of volumes
t (array) : Array of candle times
Returns: void
method setSessionHigh(vp, h)
Sets the high of the session the VP is tracking
Namespace types: VolumeProfile
Parameters:
vp (VolumeProfile)
h (float)
Returns: void
method setSessionLow(vp, l)
Sets the low of the session the VP is tracking
Namespace types: VolumeProfile
Parameters:
vp (VolumeProfile)
l (float)
Returns: void
method getPOC(vp)
Gets the current Point Of Control
Namespace types: VolumeProfile
Parameters:
vp (VolumeProfile)
Returns: Point Of Control (float)
method getVAH(vp)
Gets the current Value Area High
Namespace types: VolumeProfile
Parameters:
vp (VolumeProfile)
Returns: Value Area High (float)
method getVAL(vp)
Gets the current Value Area Low
Namespace types: VolumeProfile
Parameters:
vp (VolumeProfile)
Returns: Value Area Low (float)
VolumeProfile
Fields:
rowSizeInTicks (series float)
valueAreaCoverage (series int)
startTime (series int)
valueAreaHigh (series float)
pointOfControl (series float)
valueAreaLow (series float)
sessionHigh (series float)
sessionLow (series float)
volumeByRow (map)
totalVolume (series float)
pocRow (series float)
pocVol (series float)
Visible Range Volume Profile Heatmap [MyTradingCoder]The Visible Range Volume Profile Heatmap indicator offers a visually striking and insightful way to analyze trading volume within the visible price range of your chart. This tool goes beyond traditional volume profiles by displaying volume distribution as a heatmap, where color intensity represents the volume traded at each price level.
Key Features:
Dynamic Heatmap: Displays volume concentration using a color gradient, making it easy to spot areas of high and low trading activity.
Customizable Grid: Choose between auto-scaling or manual grid configuration to suit your analysis needs.
Flexible Color Schemes: Select from tri-tone or two-tone color palettes to represent bullish and bearish volume.
Point of Control (POC) Overlay: Highlights the price level with the highest trading volume, a critical reference point for traders.
Adjustable Transparency: Fine-tune the visibility of the heatmap to balance it with other chart elements.
Lookback Period: Customize the number of bars used for volume profile calculation.
How to Use the Visible Range Volume Profile Heatmap:
The Visible Range Volume Profile Heatmap is a powerful tool that can significantly enhance your market analysis when used effectively. To get the most out of this indicator, start by observing the overall pattern of the heatmap. Areas with darker colors represent higher volume concentration, indicating price levels where significant trading activity has occurred. These areas often serve as important support or resistance levels, as they represent prices where many traders have established positions.
Pay close attention to the Point of Control (POC), represented by a line running through the heatmap. This line marks the price level with the highest trading volume and often acts as a magnet for price action. Price tends to gravitate towards the POC, making it a crucial reference point for potential reversals or continuations.
When analyzing potential trades, consider how the current price relates to the volume distribution shown in the heatmap. If the price is approaching a high-volume area from below, it might face resistance; conversely, if it's approaching from above, that area might provide support. Breakouts beyond significant volume nodes can be particularly noteworthy, as they may signal a shift in market sentiment.
Use the heatmap in conjunction with your existing trading strategies. For example, if you're a trend follower, you might look for breakouts beyond major volume areas as confirmation of trend continuation. If you're a mean reversion trader, you might consider entries when price moves away from high-volume nodes, anticipating a return to these heavily traded levels.
The indicator can also help in identifying potential profit targets. As price moves away from one volume node, it often continues until it reaches the next significant volume area. These areas can serve as logical places to consider taking profits or adjusting your position.
For longer-term analysis, observe how the volume profile changes over time. Shifts in the distribution of volume can indicate evolving market dynamics. A broadening of the high-volume area might suggest increasing uncertainty, while a narrowing could indicate building consensus about price.
Settings Explained:
Auto Grid Configuration:
The "Auto Scale" option automatically adjusts the grid size based on the visible chart area. This ensures optimal visualization regardless of your chart's dimensions or zoom level.
Auto Scale Grid Size: Determines the total number of cells in the heatmap. A higher number provides more granular detail but may increase calculation time.
Auto Scale Grid Ratio: Adjusts the aspect ratio of the grid cells. A higher ratio creates wider, more rectangular cells, while a lower ratio results in more square-shaped cells. Experiment to find the best visual representation for your analysis.
Lookback Period:
The lookback setting determines how many columns (bars) of historical data the indicator uses to calculate the volume profile. A larger lookback will provide a more comprehensive view of historical volume distribution but may be slower to react to recent changes. A smaller lookback will be more responsive to recent volume patterns but may miss longer-term trends.
Manual Grid Configuration:
If you prefer more control over the grid layout, you can switch to manual configuration:
Column Width: Sets the number of price bars each column of the heatmap represents. A wider column aggregates more data, smoothing out the profile.
Number of Rows: Determines the vertical resolution of the heatmap. More rows provide finer price level detail but may make the overall pattern less distinct.
Tips for Optimization:
For short-term trading, use a smaller lookback and finer grid settings to capture recent market dynamics.
For longer-term analysis, increase the lookback and use wider columns to identify persistent volume patterns.
If the heatmap appears too blocky, increase the number of rows or decrease the column width.
If the heatmap is too granular, making patterns hard to discern, do the opposite.
Remember, the ideal settings often depend on your specific trading timeframe, the asset you're analyzing, and your personal analytical preferences. Don't hesitate to experiment with different configurations to find what works best for your trading style.
Conclusion
The Visible Range Volume Profile Heatmap is more than just an indicator—it's a versatile tool that enhances your ability to analyze and interpret market data. By transforming volume profiles into an intuitive, color-coded heatmap, this indicator allows you to quickly identify critical price levels where significant trading activity has occurred. Whether you're a day trader focused on short-term moves or a swing trader analyzing longer-term trends, the customizable settings of this tool provide the flexibility needed to adapt to various market conditions.
The ability to configure the grid layout, adjust the lookback period, and fine-tune the color and transparency settings ensures that the heatmap can be tailored to your specific trading strategy. By highlighting key areas of support and resistance, identifying potential breakouts, and pinpointing the Point of Control (POC), the heatmap gives you actionable insights that can enhance your decision-making process.
Incorporate the Visible Range Volume Profile Heatmap into your trading routine to gain a deeper understanding of market dynamics and to spot opportunities that might otherwise go unnoticed. Remember to experiment with the settings to find the configuration that best suits your analysis style, and use this powerful indicator in conjunction with your existing strategies for optimal results. With the right approach, this tool can become an indispensable part of your trading toolkit, helping you navigate the markets with greater confidence and precision.
nPOC Levels by Tyler### Explanation of the Pine Script
This Pine Script identifies and displays weekly naked Points of Control (nPOCs) on a TradingView chart. An nPOC represents a Point of Control (POC) from a previous week that has not been revisited by price action in subsequent weeks. These nPOCs are extended to the right as horizontal lines, indicating potential support or resistance levels.
#### Script Overview
1. **Indicator Declaration:**
```pinescript
//@version=5
indicator("Weekly nPOCs", overlay=true)
```
- The script is defined as a version 5 Pine Script.
- The `indicator` function sets the script's name ("Weekly nPOCs") and specifies that the indicator should be overlaid on the price chart (`overlay=true`).
2. **Function to Calculate POC:**
```pinescript
f_poc(_hl2, _vol) =>
var float vol_profile = na
if (na(vol_profile))
vol_profile := array.new_float(100, 0.0)
_bin_size = (high - low) / 100
for i = 0 to 99
if _hl2 >= low + i * _bin_size and _hl2 < low + (i + 1) * _bin_size
array.set(vol_profile, i, array.get(vol_profile, i) + _vol)
max_volume = array.max(vol_profile)
poc_index = array.indexof(vol_profile, max_volume)
poc_price = low + poc_index * _bin_size + _bin_size / 2
poc_price
```
- The function `f_poc` calculates the Point of Control (POC) for a given period.
- It takes two parameters: `_hl2` (the average of the high and low prices) and `_vol` (volume).
- A volume profile array (`vol_profile`) is initialized to store volume data across different price bins.
- The price range between the high and low is divided into 100 bins (`_bin_size`).
- The function iterates over each bin, accumulating the volumes for prices within each bin.
- The bin with the maximum volume is identified as the POC (`poc_price`).
3. **Variables to Store Weekly Data:**
```pinescript
var float poc = na
var float prev_poc = na
var line poc_lines = na
if na(poc_lines)
poc_lines := array.new_line(0)
```
- `poc` stores the current week's POC.
- `prev_poc` stores the previous week's POC.
- `poc_lines` is an array to store lines representing nPOCs. The array is initialized if it is `na` (not initialized).
4. **Calculate Weekly POC:**
```pinescript
is_new_week = ta.change(time('W')) != 0
if (is_new_week)
prev_poc := poc
poc := f_poc(hl2, volume)
if not na(prev_poc)
line new_poc_line = line.new(x1=bar_index, y1=prev_poc, x2=bar_index + 100, y2=prev_poc, color=color.red, width=2)
label.new(x=bar_index, y=prev_poc, text="nPOC", style=label.style_label_down, color=color.red, textcolor=color.white)
array.push(poc_lines, new_poc_line)
```
- `is_new_week` checks if the current bar is the start of a new week using the `ta.change(time('W'))` function.
- If it's a new week, the previous week's POC is stored in `prev_poc`, and the current week's POC is calculated using `f_poc`.
- If `prev_poc` is not `na`, a new line (`new_poc_line`) representing the nPOC is created, extending it to the right (for 100 bars).
- A label is created at the `prev_poc` level, marking it as "nPOC".
- The new line is added to the `poc_lines` array.
5. **Remove Old Lines:**
```pinescript
if array.size(poc_lines) > 52
line.delete(array.shift(poc_lines))
```
- This section ensures that only the last 52 weeks of nPOCs are kept to avoid cluttering the chart.
- If the `poc_lines` array contains more than 52 lines, the oldest line is deleted using `array.shift`.
6. **Plot the Current Week's POC as a Reference:**
```pinescript
plot(poc, title="Current Weekly POC", color=color.blue, linewidth=2, style=plot.style_line)
```
- The current week's POC is plotted as a blue line on the chart for reference.
#### Summary
This script calculates and identifies weekly Points of Control (POCs) and marks them as nPOCs if they remain untouched by subsequent price action. These nPOCs are displayed as horizontal lines extending to the right, providing traders with potential support or resistance levels. The script also manages the number of lines plotted to maintain a clear and uncluttered chart.
Multiple Naked LevelsPURPOSE OF THE INDICATOR
This indicator autogenerates and displays naked levels and gaps of multiple types collected into one simple and easy to use indicator.
VALUE PROPOSITION OF THE INDICATOR AND HOW IT IS ORIGINAL AND USEFUL
1) CONVENIENCE : The purpose of this indicator is to offer traders with one coherent and robust indicator providing useful, valuable, and often used levels - in one place.
2) CLUSTERS OF CONFLUENCES : With this indicator it is easy to identify levels and zones on the chart with multiple confluences increasing the likelihood of a potential reversal zone.
THE TYPES OF LEVELS AND GAPS INCLUDED IN THE INDICATOR
The types of levels include the following:
1) PIVOT levels (Daily/Weekly/Monthly) depicted in the chart as: dnPIV, wnPIV, mnPIV.
2) POC (Point of Control) levels (Daily/Weekly/Monthly) depicted in the chart as: dnPoC, wnPoC, mnPoC.
3) VAH/VAL STD 1 levels (Value Area High/Low with 1 std) (Daily/Weekly/Monthly) depicted in the chart as: dnVAH1/dnVAL1, wnVAH1/wnVAL1, mnVAH1/mnVAL1
4) VAH/VAL STD 2 levels (Value Area High/Low with 2 std) (Daily/Weekly/Monthly) depicted in the chart as: dnVAH2/dnVAL2, wnVAH2/wnVAL2, mnVAH1/mnVAL2
5) FAIR VALUE GAPS (Daily/Weekly/Monthly) depicted in the chart as: dnFVG, wnFVG, mnFVG.
6) CME GAPS (Daily) depicted in the chart as: dnCME.
7) EQUILIBRIUM levels (Daily/Weekly/Monthly) depicted in the chart as dnEQ, wnEQ, mnEQ.
HOW-TO ACTIVATE LEVEL TYPES AND TIMEFRAMES AND HOW-TO USE THE INDICATOR
You can simply choose which of the levels to be activated and displayed by clicking on the desired radio button in the settings menu.
You can locate the settings menu by clicking into the Object Tree window, left-click on the Multiple Naked Levels and select Settings.
You will then get a menu of different level types and timeframes. Click the checkboxes for the level types and timeframes that you want to display on the chart.
You can then go into the chart and check out which naked levels that have appeared. You can then use those levels as part of your technical analysis.
The levels displayed on the chart can serve as additional confluences or as part of your overall technical analysis and indicators.
In order to back-test the impact of the different naked levels you can also enable tapped levels to be depicted on the chart. Do this by toggling the 'Show tapped levels' checkbox.
Keep in mind however that Trading View can not shom more than 500 lines and text boxes so the indocator will not be able to give you the complete history back to the start for long duration assets.
In order to clean up the charts a little bit there are two additional settings that can be used in the Settings menu:
- Selecting the price range (%) from the current price to be included in the chart. The default is 25%. That means that all levels below or above 20% will not be displayed. You can set this level yourself from 0 up to 100%.
- Selecting the minimum gap size to include on the chart. The default is 1%. That means that all gaps/ranges below 1% in price difference will not be displayed on the chart. You can set the minimum gap size yourself.
BASIC DESCRIPTION OF THE INNER WORKINGS OF THE INDICTATOR
The way the indicator works is that it calculates and identifies all levels from the list of levels type and timeframes above. The indicator then adds this level to a list of untapped levels.
Then for each bar after, it checks if the level has been tapped. If the level has been tapped or a gap/range completely filled, this level is removed from the list so that the levels displayed in the end are only naked/untapped levels.
Below is a descrition of each of the level types and how it is caluclated (algorithm):
PIVOT
Daily, Weekly and Monthly levels in trading refer to significant price points that traders monitor within the context of a single trading day. These levels can provide insights into market behavior and help traders make informed decisions regarding entry and exit points.
Traders often use D/W/M levels to set entry and exit points for trades. For example, entering long positions near support (daily close) or selling near resistance (daily close).
Daily levels are used to set stop-loss orders. Placing stops just below the daily close for long positions or above the daily close for short positions can help manage risk.
The relationship between price movement and daily levels provides insights into market sentiment. For instance, if the price fails to break above the daily high, it may signify bearish sentiment, while a strong breakout can indicate bullish sentiment.
The way these levels are calculated in this indicator is based on finding pivots in the chart on D/W/M timeframe. The level is then set to previous D/W/M close = current D/W/M open.
In addition, when price is going up previous D/W/M open must be smaller than previous D/W/M close and current D/W/M close must be smaller than the current D/W/M open. When price is going down the opposite.
POINT OF CONTROL
The Point of Control (POC) is a key concept in volume profile analysis, which is commonly used in trading.
It represents the price level at which the highest volume of trading occurred during a specific period.
The POC is derived from the volume traded at various price levels over a defined time frame. In this indicator the timeframes are Daily, Weekly, and Montly.
It identifies the price level where the most trades took place, indicating strong interest and activity from traders at that price.
The POC often acts as a significant support or resistance level. If the price approaches the POC from above, it may act as a support level, while if approached from below, it can serve as a resistance level. Traders monitor the POC to gauge potential reversals or breakouts.
The way the POC is calculated in this indicator is by an approximation by analysing intrabars for the respective timeperiod (D/W/M), assigning the volume for each intrabar into the price-bins that the intrabar covers and finally identifying the bin with the highest aggregated volume.
The POC is the price in the middle of this bin.
The indicator uses a sample space for intrabars on the Daily timeframe of 15 minutes, 35 minutes for the Weekly timeframe, and 140 minutes for the Monthly timeframe.
The indicator has predefined the size of the bins to 0.2% of the price at the range low. That implies that the precision of the calulated POC og VAH/VAL is within 0.2%.
This reduction of precision is a tradeoff for performance and speed of the indicator.
This also implies that the bigger the difference from range high prices to range low prices the more bins the algorithm will iterate over. This is typically the case when calculating the monthly volume profile levels and especially high volatility assets such as alt coins.
Sometimes the number of iterations becomes too big for Trading View to handle. In these cases the bin size will be increased even more to reduce the number of iterations.
In such cases the bin size might increase by a factor of 2-3 decreasing the accuracy of the Volume Profile levels.
Anyway, since these Volume Profile levels are approximations and since precision is traded for performance the user should consider the Volume profile levels(POC, VAH, VAL) as zones rather than pin point accurate levels.
VALUE AREA HIGH/LOW STD1/STD2
The Value Area High (VAH) and Value Area Low (VAL) are important concepts in volume profile analysis, helping traders understand price levels where the majority of trading activity occurs for a given period.
The Value Area High/Low is the upper/lower boundary of the value area, representing the highest price level at which a certain percentage of the total trading volume occurred within a specified period.
The VAH/VAL indicates the price point above/below which the majority of trading activity is considered less valuable. It can serve as a potential resistance/support level, as prices above/below this level may experience selling/buying pressure from traders who view the price as overvalued/undervalued
In this indicator the timeframes are Daily, Weekly, and Monthly. This indicator provides two boundaries that can be selected in the menu.
The first boundary is 70% of the total volume (=1 standard deviation from mean). The second boundary is 95% of the total volume (=2 standard deviation from mean).
The way VAH/VAL is calculated is based on the same algorithm as for the POC.
However instead of identifying the bin with the highest volume, we start from range low and sum up the volume for each bin until the aggregated volume = 30%/70% for VAL1/VAH1 and aggregated volume = 5%/95% for VAL2/VAH2.
Then we simply set the VAL/VAH equal to the low of the respective bin.
FAIR VALUE GAPS
Fair Value Gaps (FVG) is a concept primarily used in technical analysis and price action trading, particularly within the context of futures and forex markets. They refer to areas on a price chart where there is a noticeable lack of trading activity, often highlighted by a significant price movement away from a previous level without trading occurring in between.
FVGs represent price levels where the market has moved significantly without any meaningful trading occurring. This can be seen as a "gap" on the price chart, where the price jumps from one level to another, often due to a rapid market reaction to news, events, or other factors.
These gaps typically appear when prices rise or fall quickly, creating a space on the chart where no transactions have taken place. For example, if a stock opens sharply higher and there are no trades at the prices in between the two levels, it creates a gap. The areas within these gaps can be areas of liquidity that the market may return to “fill” later on.
FVGs highlight inefficiencies in pricing and can indicate areas where the market may correct itself. When the market moves rapidly, it may leave behind price levels that traders eventually revisit to establish fair value.
Traders often watch for these gaps as potential reversal or continuation points. Many traders believe that price will eventually “fill” the gap, meaning it will return to those price levels, providing potential entry or exit points.
This indicator calculate FVGs on three different timeframes, Daily, Weekly and Montly.
In this indicator the FVGs are identified by looking for a three-candle pattern on a chart, signalling a discrete imbalance in order volume that prompts a quick price adjustment. These gaps reflect moments where the market sentiment strongly leans towards buying or selling yet lacks the opposite orders to maintain price stability.
The indicator sets the gap to the difference from the high of the first bar to the low of the third bar when price is moving up or from the low of the first bar to the high of the third bar when price is moving down.
CME GAPS (BTC only)
CME gaps refer to price discrepancies that can occur in charts for futures contracts traded on the Chicago Mercantile Exchange (CME). These gaps typically arise from the fact that many futures markets, including those on the CME, operate nearly 24 hours a day but may have significant price movements during periods when the market is closed.
CME gaps occur when there is a difference between the closing price of a futures contract on one trading day and the opening price on the following trading day. This difference can create a "gap" on the price chart.
Opening Gaps: These usually happen when the market opens significantly higher or lower than the previous day's close, often influenced by news, economic data releases, or other market events occurring during non-trading hours.
Gaps can result from reactions to major announcements or developments, such as earnings reports, geopolitical events, or changes in economic indicators, leading to rapid price movements.
The importance of CME Gaps in Trading is the potential for Filling Gaps: Many traders believe that prices often "fill" gaps, meaning that prices may return to the gap area to establish fair value.
This can create potential trading opportunities based on the expectation of gap filling. Gaps can act as significant support or resistance levels. Traders monitor these levels to identify potential reversal points in price action.
The way the gap is identified in this indicator is by checking if current open is higher than previous bar close when price is moving up or if current open is lower than previous day close when price is moving down.
EQUILIBRIUM
Equilibrium in finance and trading refers to a state where supply and demand in a market balance each other, resulting in stable prices. It is a key concept in various economic and trading contexts. Here’s a concise description:
Market Equilibrium occurs when the quantity of a good or service supplied equals the quantity demanded at a specific price level. At this point, there is no inherent pressure for the price to change, as buyers and sellers are in agreement.
Equilibrium Price is the price at which the market is in equilibrium. It reflects the point where the supply curve intersects the demand curve on a graph. At the equilibrium price, the market clears, meaning there are no surplus goods or shortages.
In this indicator the equilibrium level is calculated simply by finding the midpoint of the Daily, Weekly, and Montly candles respectively.
NOTES
1) Performance. The algorithms are quite resource intensive and the time it takes the indicator to calculate all the levels could be 5 seconds or more, depending on the number of bars in the chart and especially if Montly Volume Profile levels are selected (POC, VAH or VAL).
2) Levels displayed vs the selected chart timeframe. On a timeframe smaller than the daily TF - both Daily, Weekly, and Monthly levels will be displayed. On a timeframe bigger than the daily TF but smaller than the weekly TF - the Weekly and Monthly levels will be display but not the Daily levels. On a timeframe bigger than the weekly TF but smaller than the monthly TF - only the Monthly levels will be displayed. Not Daily and Weekly.
CREDITS
The core algorithm for calculating the POC levels is based on the indicator "Naked Intrabar POC" developed by rumpypumpydumpy (https:www.tradingview.com/u/rumpypumpydumpy/).
The "Naked intrabar POC" indicator calculates the POC on the current chart timeframe.
This indicator (Multiple Naked Levels) adds two new features:
1) It calculates the POC on three specific timeframes, the Daily, Weekly, and Monthly timeframes - not only the current chart timeframe.
2) It adds functionaly by calculating the VAL and VAH of the volume profile on the Daily, Weekly, Monthly timeframes .
Price & Volume Profile (Expo)█ Overview
The Price & Volume Profile provides a holistic perspective on market dynamics by simultaneously tracking price action and trading volume across a range of price levels. So it is not only a volume-based indicator but also a price-based one. In addition to illustrating volume distribution, it quantifies how frequently the price has fallen within a particular range, thus offering a holistic perspective on market dynamics.
This unique and comprehensive approach to market analysis by considering both price action and trading volume, two crucial dimensions of market activity. Its distinctive methodology offers several advantages:
Holistic Market View: By simultaneously tracking the frequency of specific price ranges (Price Profile) and the volume traded at those ranges (Volume Profile), this indicator provides a more complete picture of market behavior. It shows not only where the market is trading but also how much it's trading, reflecting both price acceptance levels and market participation intensity.
Point of Control (POC): The POC, as highlighted by this indicator, serves as a significant reference point for traders. It identifies the price level with the highest trading activity, thus indicating a strong consensus among market participants about the asset's fair value. Observing how price interacts with the POC can offer valuable insights into market sentiment and potential trend reversals.
Support and Resistance Levels: Price levels with high trading activity often act as support or resistance in future price movements. The indicator visually represents these levels, enabling traders to anticipate potential price reactions.
Price Profile
Price and Volume Profile
█ Calculations
The algorithm analyzes both trade frequency and volume across different price levels. It identifies these levels within the visible chart range, then examines each bar to determine if the selected price falls within these levels. If so, it increases a counter and adds the trading volume. This process repeats across the visible range and is visualized as a horizontal histogram, each bar representing a price level and the bar length reflecting trade frequency and volume. Additionally, it calculates the Point of Control (POC), signifying the price level with the highest activity.
In summary: The histogram presents a dual perspective - not only the traded volume at each price level but also the frequency of the price hitting each range. The longer the bar, the more times the price has frequented that specific range, revealing key insights into price behavior and acceptance levels. These frequently visited areas often emerge as strong support or resistance zones, helping traders navigate market movements.
Please note that the indicator adjusts to the visible price range, making it adaptable to changing market conditions. This dynamic analysis can provide more relevant and timely information than static indicators.
█ How to use
This indicator is beneficial for traders as it offers insights into the distribution of trading activity across different price levels. It helps identify key areas of support and resistance and gives a visual representation of market sentiment and liquidity.
The point of control (POC) , which is the price level with the highest traded volume or frequency count, becomes even more crucial in this context. It marks the price at which the most trading activity occurred, signaling a strong consensus among market participants about the asset's fair value. If the market price deviates significantly from the POC, it could suggest an overbought or oversold condition, potentially leading to a price reversion.
Fair Price Areas/gaps are specific price levels or zones where an asset has spent limited time in the past. These areas are considered interesting or significant because they may have an impact on future price action.
Similar to the concept of fair value gaps, which refers to discrepancies between an asset's market price and its estimated intrinsic value, Fair Price Areas/gaps focus on price levels that have been relatively underutilized in terms of trading activity. When an asset's price reaches a Fair Price Area/gap, traders and investors pay attention because they expect the price to react in some way. The rationale behind this concept is that price tends to gravitate towards areas where it has spent less time in the past, as the market perceives them as significant levels.
█ Settings
The indicator is customizable, allowing users to define the number of price levels (rows), the offset, the data source, and whether to display volume or frequency count. It also adjusts dynamically to the visible price range on the chart, ensuring that the analysis remains relevant and timely with changing market conditions.
Source: The price to use for the calculation. Typically, this is the closing price. By considering the user-selected Source (typically the closing price), the indicator determines the frequency with which the price lands within each designated price level (row) over the selected period. In essence, the indicator provides a count of bars where the Source price falls within each range, essentially creating a "Price Profile."
Row Size: The number of price levels (rows) to divide the visible price range into.
Display: Choose whether to display the number of bars ("Counter") or the total volume ("Volume") for each price level.
Offset: The distance of the histogram from the price chart.
Point of Control (POC): If enabled, the indicator will highlight the price level with the most activity.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
Spoofing Detector with VPOC [CHE]"We're keeping an eye on the market makers, zooming in for a closer look."
Spoofing and Volume Point of Control (VPOC) are terms used in the context of market manipulation and market analysis in financial markets.
A spoofing detector is a tool developed to detect the spoofing of orders. Spoofing refers to a practice where a market participant places large orders to deceive other market participants and influence the price of a stock. These large orders, however, are not executed but cancelled shortly after, creating a false demand for a specific stock and influencing the price. A spoofing detector can use algorithms to detect and report these practices to maintain the integrity of the market.
The Volume Point of Control (VPOC) is a concept in technical analysis aimed at identifying the key price level at which a stock was bought and sold. VPOC is calculated by analyzing the volume data of a stock and determining the price level at which the largest volume was traded for a specific period. This price level can serve as an indicator of the current market trend and market interest in a specific stock.
There is a substantive connection between a spoofing detector and VPOC because both tools can be used to gain a better understanding of the stock markets and detect potential forms of market manipulation. For example, VPOC can be used as an indicator of potential market manipulation when an abnormal distribution of trading volume is observed at a specific price level. A spoofing detector can then be used to detect and report these activities.
Pine Script Indicator Analysis:
This is a Pine Script code for a spoofing detector and volume point of control (VPOC) indicator. The purpose of the indicator is to detect and highlight potential spoofing activities in the market, as well as to plot the volume point of control on the chart.
Inputs:
Median Lookback: This input defines the length of the median calculation, with a default value of 25.
Range To Edges Threshold: This input sets a threshold value for the range to edges calculation, with a default value of 200.
Multiplier 1: This input sets a multiplier value to be used in the average true range calculation, with a default value of 0.8.
Multipler 2: This input sets a multiplier value to be used in the average true range calculation, with a default value of 2.0.
Multipler 3: This input sets a multiplier value to be used in the average true range calculation, with a default value of 3.0.
Variables:
y, x, ds, os: These are arrays and a variable used for the first part of the spoofing detection process.
y1, x1, ds1, os1: These are arrays and a variable used for the second part of the spoofing detection process.
y2, x2, ds2, os2: These are arrays and a variable used for the third part of the spoofing detection process.
Calculation:
The code starts by defining some variables, such as the bar index (n), the close price (src), and the average true range (atr) with different multipliers.
Next, the median of the close price is calculated over the lookback period specified by the "Median Lookback" input.
Then, the difference between the current median and the previous median is calculated, and the value is compared with the average true range with different multipliers to determine the state of the market (up, down, or unchanged).
The code then checks if the state has changed from the previous bar, and if so, the code performs a spoofing detection calculation.
The spoofing detection calculation involves determining the range between the first and last bar in the median calculation, and dividing it by the sum of the absolute differences calculated earlier. If the result is below the "Range To Edges Threshold" input, the code plots a line and a label on the chart indicating a potential spoofing activity.
The process is repeated for each of the three parts of the spoofing detection process.
VPOC:
The VPOC code is used to calculate the Volume Point of Control (VPOC) on a chart. The VPOC is the price level with the highest volume over a specified lookback period. The script contains several functions and inputs that allow the user to customize the calculation.
Inputs:
i_source: This input allows the user to specify the source for the VPOC price calculation. The options are the close price of the bar.
i_vpocThreshold: This input allows the user to set the threshold percentage for the VPOC highlight.
Functions:
timeStep_translate(): This function returns a string representing the time step of the lower time frame based on the current time frame of the chart.
ltfStats(): This function returns an array of the source and volume of the lower time frame.
ltfSrc, ltfVolume: This line requests the lower time frame data using the request.security_lower_tf function, with the lower time frame step calculated by the timeStep_translate() function.
maxVolume and indexOfMaxVolume: These variables store the maximum volume value and its corresponding index in the ltfVolume array.
maxVol: This variable stores the source value corresponding to the maximum volume.
vpocThresholdMet: This variable is a boolean that is true when the volume at the maximum volume price level is greater than or equal to the threshold percentage of the total volume.
vpocColor: This variable stores the color for the VPOC plot.
vh: This variable stores the highest volume in the lookback period.
plotshape(): This function plots the VPOC on the chart. The shape will be plotted only if the volume is greater than the specified threshold percentage of the highest volume in the lookback period. The shape will be labeled with the text "VC".
Overall, this script calculates the VPOC for a chart by aggregating volume data from a lower time frame and plotting a shape at the price level with the highest volume. The user can specify the source for the VPOC calculation and the threshold percentage for the VPOC highlight.
Important: VPOC shows everything in real time as a leading indicator, the triple spoofing detector is trailing
Best regards
Chervolino
Chart Champions - Part 3 - SessionsThank you for sparing you time to read my indicator.
This indicator has been created as a suite of 3. This was to ensure that those with only the Free Trading View account could benefit (with their restriction to 3 indicators). Please ensure you install each indicator and read each indicator write up to fully understand what has tried to achieved.
Chart Champions – Part 1 –Lvls nPOC VWAPS
This indicator is broken down into:
• Levels
• VWAPS
• Naked Point of Control
Levels
It displays the levels to the right of the price Axis to enable the user to have a cleaner chart.
The below levels will automatically appear:
dOpen – pdHigh – pdLow – pdEQ – pwEQ
Optional Levels include:
mOpen – pmOpen – pdOpen – dbyOpen – wOpen – pwOpen
VWAPs
Optional VWAPs
Daily (including pdVWAP close) – Weekly – Monthly
Naked Points of Control (nPOC)
To view the nPOC move the chart back in time to pick up the nPOCs.
Chart Champions – Part 2 – CCV IBs POC
This indicator is broken down into:
• Chart Champions Value
• Initial Balance
• Points of Control
Chart Champions Value (CCV)
CCV is based on the 80% rule of the dOpen opening outside of the pdVAH/pdVAL. Please do you own research to fully understand how this trading strategy works (readily avaliable online).
Initial Balance (IB)
IB is based on the first 60 minutes of the market opening. It captures the highest and lowest points within that 60 minutes. Please do you own research to fully understand how this trading strategy works (readily avaliable online).
Points of Control (POCs)
POC are the price levels where the most volume was traded.
Developing POC (dPOC) will constantly move with volume/price action through out the day.
Optional POCs
Previous Day POC (pdPOC) – Day Before Yesterday POC (dbyPOC)
Chart Champions – Part 3 – Sessions - Manual Input
This indicator is broken down into:
• Manual Inputs (daily, weekly, monthly)
• IGOR SessionsTtimes
• Pre + Market Openings
Manual Input
Daily x3
Weekly x 3
Monthly x 3
This allows the trader to put in specific levels.
IGOR Session Times
This is a user specific requirement to highlight cetain times during the day, displayed at the bottom of the chart in the colour strip.
Pre + Market Openings
This allows the user to see when pre market trading has started and with the live maket has started, displayed at the top of the chart in colours.
A huge thank you goes out to:
Stackoverflow users AnyDozer and Bjorn.
TV user ahancock for allow me use of this code.
Disclaimer the lower the timeframe the more information it processes.
Chart Champions - Part 2 - CCV IBs POCsThank you for sparing you time to read my indicator.
This indicator has been created as a suite of 3. This was to ensure that those with only the Free Trading View account could benefit (with their restriction to 3 indicators). Please ensure you install each indicator and read each indicator write up to fully understand what has tried to achieved.
Chart Champions – Part 1 –Lvls nPOC VWAPS
This indicator is broken down into:
• Levels
• VWAPS
• Naked Point of Control
Levels
It displays the levels to the right of the price Axis to enable the user to have a cleaner chart.
The below levels will automatically appear:
dOpen – pdHigh – pdLow – pdEQ – pwEQ
Optional Levels include:
mOpen – pmOpen – pdOpen – dbyOpen – wOpen – pwOpen
VWAPs
Optional VWAPs
Daily (including pdVWAP close) – Weekly – Monthly
Naked Points of Control (nPOC)
To view the nPOC move the chart back in time to pick up the nPOCs.
Chart Champions – Part 2 – CCV IBs POC
This indicator is broken down into:
• Chart Champions Value
• Initial Balance
• Points of Control
Chart Champions Value (CCV)
CCV is based on the 80% rule of the dOpen opening outside of the pdVAH/pdVAL. Please do you own research to fully understand how this trading strategy works (readily avaliable online).
Initial Balance (IB)
IB is based on the first 60 minutes of the market opening. It captures the highest and lowest points within that 60 minutes. Please do you own research to fully understand how this trading strategy works (readily avaliable online).
Points of Control (POCs)
POC are the price levels where the most volume was traded.
Developing POC (dPOC) will constantly move with volume/price action through out the day.
Optional POCs
Previous Day POC (pdPOC) – Day Before Yesterday POC (dbyPOC)
Chart Champions – Part 3 – Sessions - Manual Input
This indicator is broken down into:
• Manual Inputs (daily, weekly, monthly)
• IGOR SessionsTtimes
• Pre + Market Openings
Manual Input
Daily x3
Weekly x 3
Monthly x 3
This allows the trader to put in specific levels.
IGOR Session Times
This is a user specific requirement to highlight cetain times during the day, displayed at the bottom of the chart in the colour strip.
Pre + Market Openings
This allows the user to see when pre market trading has started and with the live maket has started, displayed at the top of the chart in colours.
A huge thank you goes out to:
Stackoverflow users AnyDozer and Bjorn.
TV user ahancock for allow me use of this code.
Disclaimer the lower the timeframe the more information it processes.
Chart Champions - Part 1 - nPOC - Levels - VWAPsThank you for sparing you time to read my indicator.
This indicator has been created as a suite of 3. This was to ensure that those with only the Free Trading View account could benefit (with their restriction to 3 indicators). Please ensure you install each indicator and read each indicator write up to fully understand what has tried to achieved.
Chart Champions – Part 1 –Lvls nPOC VWAPS
This indicator is broken down into:
• Levels
• VWAPS
• Naked Point of Control
Levels
It displays the levels to the right of the price Axis to enable the user to have a cleaner chart.
The below levels will automatically appear:
dOpen – pdHigh – pdLow – pdEQ – pwEQ
Optional Levels include:
mOpen – pmOpen – pdOpen – dbyOpen – wOpen – pwOpen
VWAPs
Optional VWAPs
Daily (including pdVWAP close) – Weekly – Monthly
Naked Points of Control (nPOC)
To view the nPOC move the chart back in time to pick up the nPOCs.
Chart Champions – Part 2 – CCV IBs POC
This indicator is broken down into:
• Chart Champions Value
• Initial Balance
• Points of Control
Chart Champions Value (CCV)
CCV is based on the 80% rule of the dOpen opening outside of the pdVAH/pdVAL. Please do you own research to fully understand how this trading strategy works (readily avaliable online).
Initial Balance (IB)
IB is based on the first 60 minutes of the market opening. It captures the highest and lowest points within that 60 minutes. Please do you own research to fully understand how this trading strategy works (readily avaliable online).
Points of Control (POCs)
POC are the price levels where the most volume was traded.
Developing POC (dPOC) will constantly move with volume/price action through out the day.
Optional POCs
Previous Day POC (pdPOC) – Day Before Yesterday POC (dbyPOC)
Chart Champions – Part 3 – Sessions - Manual Input
This indicator is broken down into:
• Manual Inputs (daily, weekly, monthly)
• IGOR SessionsTtimes
• Pre + Market Openings
Manual Input
Daily x3
Weekly x 3
Monthly x 3
This allows the trader to put in specific levels.
IGOR Session Times
This is a user specific requirement to highlight cetain times during the day, displayed at the bottom of the chart in the colour strip.
Pre + Market Openings
This allows the user to see when pre market trading has started and with the live maket has started, displayed at the top of the chart in colours.
A huge thank you goes out to:
Stackoverflow users AnyDozer and Bjorn.
TV user ahancock for allow me use of this code.
Disclaimer the lower the timeframe the more information it processes.
Trading Ideas - Chart Champions Value - Points of Interest Trading Ideas is based on having visual Points of Interest.
The indicator displays:
- dOpen : Daily Open
- dPOC: Developing Point of Control
- pdPOC : Previous Day Point of Control
- dbyPOC : Day Before Yesterday Point of Control
Initial Balance (High, low, mid points for the first hour (UTC 0000)
- IB High : Initial Balance High
- IB Mid : Initial Balance Middle
- IB Low : Initial Balance Low
Chart Champions Value ( CCV ) is based on Daniel - Chart Champions theory explained in his educational videos.
That if the previous day is a range day and price action (PA) closes:
Above the previous days Value Area High (pdVAH) then there is an 80% chance of it retracing back to previous days Value Area Low (pdVAL)
Below the previous days Value Area Low (pdVAL) then there is an 80% chance of it going back up to the previous days Value Area High (pdVAH)
The CCV check can be ticked on and off for a quick visual to see if the setup could potentially be in play (if green then CCV could be play for that day).
Settings/Configuration
The calculated Value Area (VA) can be amended.
It is recommend to change the resolution to that of your symbol. For example BTC resolution 1, XRP resolution 0.00001.
As seen below having key Points of Interest can make you think twice before going into a trade:
My thanks go to:
ahancock for allowing usage of his script.
AnyDozer and Bjorn Mistiaen on Stack Overflow for all their assistance.
Any feedback will be gratefully received.
IDKFAIDKFA - Advanced Order Blocks & Volume Profile with Market Structure Analysis
Why IDKFA?
Named after the legendary DOOM cheat code that gives players "all weapons and full ammo," IDKFA provides traders with a comprehensive arsenal of market analysis tools. Just as the cheat code arms players with everything needed for combat, this indicator equips traders with essential market structure tools: Order Blocks, Volume Profile, LVN/HVN areas, Fibonacci retracements, and intelligent buy/sell signals - all in one unified system.
Core Features
Order Blocks Detection
Automatically identifies institutional order blocks using pivot high/low analysis
Extends blocks dynamically until price interaction occurs
Bullish blocks (demand zones) and bearish blocks (supply zones)
Customizable opacity and extend functionality
Advanced Volume Profile
Real-time volume profile calculation for multiple session types
Point of Control (POC), Value Area High (VAH), and Value Area Low (VAL)
Mode 1: Side-by-side bull/bear volume display
Mode 2: Overlapped volume display with percentage analysis
Shows buying vs selling pressure at each price level
LVN/HVN Area Detection
Low Volume Nodes (LVN): Areas below VAL where price moves quickly
High Volume Nodes (HVN): Areas above VAH with strong resistance
NPOC (Naked Point of Control): Single print areas within Value Area
Volume-based gradient coloring shows relative activity levels
Smart Fibonacci Retracements
Auto-detects trend direction for proper fibonacci orientation
Dynamic color coding: Red levels in uptrends, Gold in downtrends
Special 88.6% level turns lime green in downtrends
Key levels: 23.6%, 38.2%, 50%, 61.8%, 65%, 78.6%, 88.6%
Intelligent Signal System
Works best on higher timeframes
Identifies high-probability reversal setups at key levels
Buy signals: Large bearish rejection followed by bullish reclaim
Sell signals: Large bullish rejection followed by bearish breakdown
Signals only trigger near significant support/resistance areas
Signal Analysis & Usage Guidelines
Buy Signal Mechanics
The buy signal triggers when:
Previous candle shows significant bearish movement (minimum ATR multiplier)
Current candle reclaims a configurable percentage of the previous candle's range
Price is near a key support level (order blocks, fibonacci, volume levels)
Sell Signal Mechanics
The sell signal triggers when:
Previous candle shows significant bullish movement (minimum ATR multiplier)
Current candle rejects below a configurable percentage of the previous candle's range
Price is near a key resistance level (order blocks, fibonacci, volume levels)
When to TAKE Signals
High Probability Buy Signals:
Signal appears AT or BELOW the VAL (Value Area Low)
Signal occurs at bullish order block confluence
Price is in LVN area below VAL (momentum acceleration zone)
Signal aligns with fibonacci 61.8% or 78.6% support
Multiple session POC levels provide support confluence
Previous session's VAL acting as current support
High Probability Sell Signals:
Signal appears AT or ABOVE the VAH (Value Area High)
Signal occurs at bearish order block confluence
Price is in HVN area above VAH (heavy resistance zone)
Signal aligns with fibonacci 61.8% or 78.6% resistance
Multiple session POC levels provide resistance confluence
Previous session's VAH acting as current resistance
When to AVOID Signals
Avoid Buy Signals When:
Signal appears ABOVE the VAH (buying into resistance)
Price is in HVN red zones (high volume resistance areas)
No clear support structure below current price
Volume profile shows heavy selling pressure (high bear percentages)
Signal occurs during low-volume periods between major sessions
Multiple bearish order blocks exist below current price
Avoid Sell Signals When:
Signal appears BELOW the VAL (selling into support)
Price is in LVN green zones (momentum could continue)
No clear resistance structure above current price
Volume profile shows heavy buying pressure (high bull percentages)
Signal occurs during Asian session ranges without clear direction
Multiple bullish order blocks exist above current price
Volume Profile Context for Signals
Understanding Bull/Bear Percentages:
70%+ Bull dominance at a level = Strong support expected
70%+ Bear dominance at a level = Strong resistance expected
50/50 Split = Neutral zone, less predictable
Use percentages to gauge conviction behind moves
POC (Point of Control) Interactions:
Signals above POC in uptrend = Higher probability
Signals below POC in downtrend = Higher probability
Signals against POC bias require extra confirmation
POC often acts as magnetic level for price return
Trading Strategies
Strategy 1: VAL/VAH Bounce Strategy
Wait for price to approach VAL (support) or VAH (resistance)
Look for signal confirmation at these critical levels
Enter with tight stops beyond the Value Area
Target opposite boundary or next session's levels
Strategy 2: Order Block + Volume Confluence
Identify order block alignment with VAL/VAH
Wait for signal within the confluence zone
Enter on signal with stop beyond order block
Use LVN areas as acceleration zones for targets
Strategy 3: LVN/HVN Strategy
LVN (Green) Areas: "Go Zones" - expect quick price movement through low volume
HVN (Red) Areas: "Stop Zones" - expect resistance and potential reversals
NPOC Areas: "Fill Zones" - price often returns to fill single print gaps
Strategy 4: Multi-Session Analysis
Use Daily/Weekly for major structure context
Use 4H for intermediate levels
Use 1H for precise entry timing
Ensure all timeframes align before taking signals
Strategy 5: Fibonacci + Volume Profile
Buy signals at 61.8% or 78.6% fibonacci near VAL
Sell signals at 61.8% or 78.6% fibonacci near VAH
Use 88.6% level as final support/resistance before major moves
50% level often aligns with POC for confluence
Signal Quality Assessment
Grade A Signals (Highest Probability):
Signal at VAL/VAH with order block confluence
Fibonacci level alignment (61.8%, 78.6%)
Volume profile shows 70%+ dominance in signal direction
Multiple timeframe structure alignment
Signal occurs during high-volume sessions (London/NY)
Grade B Signals (Moderate Probability):
Signal near POC with some confluence
Fibonacci 50% or 38.2% alignment
Mixed volume profile readings (50-70% dominance)
Some timeframe alignment present
Signal during overlap sessions
Grade C Signals (Lower Probability):
Signal with minimal confluence
Weak fibonacci alignment or none
Volume profile neutral or against signal
Conflicting timeframe signals
Signal during low-volume periods
Risk Management Guidelines
Position Sizing Based on Signal Quality:
Grade A: Standard position size
Grade B: Reduced position size (50-75%)
Grade C: Minimal position size (25%) or skip entirely
Stop Loss Placement:
Beyond order block boundaries
Outside Value Area (VAL/VAH)
Below/above fibonacci confluence levels
Account for session volatility ranges
Profit Targets:
First target: Opposite VAL/VAH boundary
Second target: Next session's key levels
Final target: Major order blocks or fibonacci extensions
Credits & Attribution
Original components derived from:
Market Sessions & Volume Profile by © Leviathan (Mozilla Public License 2.0)
Volume Profile elements inspired by @LonesomeTheBlue's volume profile script
Pivot Order Blocks by TradingWolf / © MensaTrader (Mozilla Public License 2.0)
Auto Fibonacci Retracement code (public domain)
Significant enhancements and modifications include:
Advanced LVN/HVN detection and visualization
Bull/Bear percentage analysis for Mode 2/3
Comprehensive alert system with market context
Integrated buy/sell signals at key levels
Performance optimizations and extended session support
Enhanced Mode 2/3 with percentage pressure analysis
Important Disclaimers
This indicator is a technical analysis tool designed for educational purposes. It does not provide financial advice, investment recommendations, or trading signals that guarantee profits. All trading involves substantial risk of loss, and past performance does not guarantee future results. Users should conduct their own research, understand the risks involved, and consider consulting with qualified financial advisors before making trading decisions. The signals and analysis provided are based on historical price patterns and volume data, which may not predict future market movements accurately.
Best Practices
Never trade signals blindly - always consider volume profile context
Wait for confluence between multiple tools before entering
Respect the Value Area - avoid buying above VAH or selling below VAL
Use session context - Asian ranges vs London/NY breakouts
Practice proper risk management - position size based on signal quality
Understand the bigger picture - use multiple timeframes for context
Remember: Like the IDKFA cheat code, having all the tools doesn't guarantee success. The key is learning to use them together effectively and understanding when NOT to take a signal is often more important than knowing when to take one.
Weighted Volume Profile Pivot Points | Flux Charts💎 GENERAL OVERVIEW
Introducing our new Weighted Volume Profile Pivot Points (WVPPP) Indicator! This indicator renders a volume profile using the latest pivot points, automatically adjusting itself when new pivots occur. The pivoting mode can be switched between default pivot points and order blocks mode. It can be adjusted to give more weight to recent or past candlesticks, or can be used as a normal volume profile. For more information, please read the full write-up.
Features of the new Weighted Volume Profile Pivot Points (WVPPP) Indicator :
Renders Volume Profile Of The Range Between Latest Pivots
Two Pivoting Modes Including Order Blocks Mode
Adjustable Weighthing Towards Past or Recent
Customizable Row Count & Maximum Distance
Left or Right Alignment
More Styling Options
🚩UNIQUENESS
This indicator stands out with two key features. One is it's ability to weight volumes based on their distance to the current time. Giving weight to volumes may offer new trading opportunities to traders as they can now see the most recent Point Of Control (POC) or a more powerful but past POC based on their choice. Another key feature the indicator has is that it automatically finds latest valid pivot points, and uses that range for the volume profile. The range changes dynamically as new pivots points emerge. You can select between normal pivot points and order blocks mode. The indicator also has a variety of useful styling settings such as aligning the volume profile to the right or the left of the chart, POC Line styling and color settings for bullish & bearish volumes.
📌 HOW DOES IT WORK ?
A volume profile provides an in-depth look at trading activity over a period of time by plotting a histogram on the price axis. This indicator can also give weight to volumes based on their distance to the current time, essentially determining their importance for the profile. The range which the volume profile will cover is determined by the latest pivot points. Here is how it works step-by-step :
1. Determine how much candlesticks the volume profile will cover (Analyze Bars setting)
2. Find the latest pivot points. If the mode is set to "Pivots", the pivot points are the candlesticks which has the highest / lowest wick in X amount of bars (Swing Length setting). If the mode is set to "Order Blocks", the volume profile range is the area between the latest buyside order block and the sellside order block. Order blocks occur when there is a high amount of market orders exist on a price range. It is possible to find order blocks using specific candlestick formations on the chart. For more information about the order block detection, I suggest you checking the write-up of our "Volumized Order Blocks" script. Increasing the "Swing Length" setting is recommended when the mode is set to "Pivots", as this will help in finding stronger pivot points.
3. Make a range using the latest pivot points, then divide it into rows (Row Count setting)
4. Then for each candlestick, add it's volume to the corresponding row in the range. Note that the volume can be added into several rows if it overlaps with them all.
5. If the candlestick is a bullish candlestick, we add it's volume into the bullish volume of the row, if it's a bearish candlestick, we add it to the bearish volume of the row.
With the weighted volume mode, which is activated if "Volume Weighthing" setting is set to "Recent" or "Past", all volumes get a penalty based on their distance to the latest candletstick. For example, if the setting is set to "Recent", the latest candlestick contributes it's volume by 100% to the corresponding row, but the candlestick which is 50 candlesticks far from the current candlestick only contributes it's volume by ~17% to the row. The same applies to the "Past" setting, but in the reversed order, where past candlesticks have more priority than the current ones.
Volume contribution percent for "Recent" setting : ((100 * 0.85) / (i + 1)) + (100 * (1.0 - 0.85))
Volume contribution percent for "Past" setting : ((100 * 0.85) * ((i + 1) / N)) + (100 * (1.0 - 0.85))
Where i = candlestick index from right to left, N = total number of candlesticks analyzed by the volume profile.
The Point Of Control (POC) line is drawn from the row with the most total volume, and is generally considered as a strong level because a lot of trading volume happened on that particular row. Traders may use this line as a support & resistance level.
We believe that automatically ranging the volume profile to important pivot points will help traders see crucial volume information easier without unnecessary hassle. Traders can use this indicator to have an insight of areas which price moves quickly without much volume, or see areas that holds the price still for much longer and plan their trades accordingly.
⚙️SETTINGS
1. General Configuration
Mode -> The pivoting mode that is switchable between "Pivots" and "Order Blocks" as described in the write-up. Please read the upper section to understand how this setting works.
Analyze Bars -> Total amount of bars that will be analyzed by the indicator from right to left.
Row Count -> The amount of rows that will the vertical range between pivot points will be divided into.
Volume Weighting -> The volume weighting mode as explained in the write-up.
2. Style
Highlight Sessions -> The volume profile sessions will be highlighted with a blue tint. To prevent confusion, highlighting will not work if the alignment is set to "Right".
Align To -> The alignment of the volume profile.
ATR Price Targets w/POC
ATR Price Targets with Point of Control (POC):
This script is designed to help traders identify key price target levels based on configurable multipliers of the the Average True Range (ATR) and the volume based Point of Control (POC). It is intended for intraday traders looking to capture significant price movements.
Features:
ATR Price Targets: The script calculates three levels of price targets above and below the first bar of the day, based on the ATR of the last 22 days (assuming 5-minute candles). These targets are adjustable through the settings, allowing traders to set their own ATR multipliers.
Point of Control (POC): The POC is determined as the price level of the highest volume bar since the start time, providing an indication of the most traded price within the specified period.
Customizable Start Time: Traders can set their desired start time for the calculation of price targets and POC, allowing for flexibility in aligning the indicator with their trading strategy.
Plot Lines: The ATR price targets are plotted as lines for easy visualization on the chart.
Usage:
The ATR price targets can be used as potential take-profit or stop-loss levels.
The POC can serve as a key level for assessing market sentiment and potential reversals.
Traders can adjust the ATR multipliers and start time based on their specific trading style and market conditions.
Settings:
ATR Price Targets 1, 2, 3: Adjust the multipliers for the ATR price targets. By default, these are set to 1*ATR for T1+/T1-, 3*ATR for T2+/T2- and ATR*6 for T3+/T3-. Adjust with caution as the price targets found in defaults have proven to be more accurate over intraday cycles for volatile stocks.
Start Hour & Start Minute: Set the starting hour and minute for the calculations. By default, these are set to the opening 5 minute intraday bar, but can also be set to the opening bar of pre-market hours.
Volume Profile [TFO]This indicator generates Volume Profiles from which to display insights about recent Volume Points of Control and High Volume Nodes. Volume Profile is a way to view trading volume by the price where trades have occurred, rather than the time when they occur (as seen by traditional Volume indicators).
By selecting a Resolution Timeframe (1m in this example), we can aggregate the volume at different prices to build a Volume Profile for a specified Profile Timeframe (1D in this example). In this indicator, we make the simple assumption that a given candle's volume is distributed evenly across all points. Realistically, this is seldom the case, but it gives us a starting point to easily estimate the volume at a given price, in turn helping us to build our profiles in a trivial way.
If we do this for all Resolution Timeframe candles within a Profile Timeframe (all 1m candles in a single 1D candle, in this example), then we can successfully aggregate this data and build a full Volume Profile. And thankfully, Pine Script's new polyline feature ultimately allow us to keep more Volume Profiles on our charts. Before polylines, we would have to consider using lines or boxes to represent the individual levels within a given profile, and each script currently has a cap of 500 lines and boxes, respectively. However, one single polyline can be used to draw the complex shape of an entire profile, and we may show up to 100 polylines in a given script. This helps us keep a lot more data on our charts!
Compared to TradingView's Session Volume Profile indicator (blue/yellow), we can see that our indicator (grey) is nearly identical, which verifies that our assumption of a uniform volume distribution is enough to roughly estimate a given Volume Profile. Note in this example the Row Size was set to 200, meaning that 200 levels are used to approximate profiles from each session's high to its low.
Show VPOC will show the volume point of control of each profile, which represents the price level where the largest amount of volume was traded for a given profile. This is shown with the red lines in the following chart.
Extend Last N VPOCs will look for the most recent, user-defined number of VPOCs (not including the current session's VPOC that's still developing) and extend them to the right of the chart as points of reference. The Show Labels Above option will annotate each VPOC with its respective date above a specified timeframe. This way, if one was using Volume Profiles on intraday timeframes, there wouldn't need to be several date strings all showing the same day.
Show Previous HVNs will show high volume nodes from the previous session. The HVN Strength setting is similar to a "pivot strength" that I use in a lot of my scripts - essentially, HVNs are validated by treating them as local highs. With a HVN Strength of 10 for example, if a given level contains more volume than the 10 levels above and below it, then it is validated as a HVN.
For a cleaner look and feel, HVNs can instead be shown as levels (lines) instead of areas (boxes). With levels enabled, solid lines denote the previous session's VPOC, and dotted lines represent all other HVNs. With areas enabled instead, the tops and bottoms will extend above/below the HVN level until a point with greater volume is discovered (marking the "end" of the node).
This indicator can be computationally intensive and may crash from taking too long to execute. In these cases, it's best to disable unused features, decrease the number of Rows, and/or simply reload the chart until it populates.
lib_profileLibrary "lib_profile"
a library with functions to calculate a volume profile for either a set of candles within the current chart, or a single candle from its lower timeframe security data. All you need is to feed the
method delete(this)
deletes this bucket's plot from the chart
Namespace types: Bucket
Parameters:
this (Bucket)
method delete(this)
Namespace types: Profile
Parameters:
this (Profile)
method delete(this)
Namespace types: Bucket
Parameters:
this (Bucket )
method delete(this)
Namespace types: Profile
Parameters:
this (Profile )
method update(this, top, bottom, value, fraction)
updates this bucket's data
Namespace types: Bucket
Parameters:
this (Bucket)
top (float)
bottom (float)
value (float)
fraction (float)
method update(this, tops, bottoms, values)
update this Profile's data (recalculates the whole profile and applies the result to this object) TODO optimisation to calculate this incremental to improve performance in realtime on high resolution
Namespace types: Profile
Parameters:
this (Profile)
tops (float ) : array of range top/high values (either from ltf or chart candles using history() function
bottoms (float ) : array of range bottom/low values (either from ltf or chart candles using history() function
values (float ) : array of range volume/1 values (either from ltf or chart candles using history() function (1s can be used for analysing candles in bucket/price range over time)
method tostring(this)
allows debug print of a bucket
Namespace types: Bucket
Parameters:
this (Bucket)
method draw(this, start_t, start_i, end_t, end_i, args, line_color)
allows drawing a line in a Profile, representing this bucket and it's value + it's value's fraction of the Profile total value
Namespace types: Bucket
Parameters:
this (Bucket)
start_t (int) : the time x coordinate of the line's left end (depends on the Profile box)
start_i (int) : the bar_index x coordinate of the line's left end (depends on the Profile box)
end_t (int) : the time x coordinate of the line's right end (depends on the Profile box)
end_i (int) : the bar_index x coordinate of the line's right end (depends on the Profile box)
args (LineArgs type from robbatt/lib_plot_objects/24) : the default arguments for the line style
line_color (color) : the color override for POC/VAH/VAL lines
method draw(this, forced_width)
draw all components of this Profile (Box, Background, Bucket lines, POC/VAH/VAL overlay levels and labels)
Namespace types: Profile
Parameters:
this (Profile)
forced_width (int) : allows to force width of the Profile Box, overrides the ProfileArgs.default_size and ProfileArgs.extend arguments (default: na)
method init(this)
Namespace types: ProfileArgs
Parameters:
this (ProfileArgs)
method init(this)
Namespace types: Profile
Parameters:
this (Profile)
profile(tops, bottoms, values, resolution, vah_pc, val_pc, bucket_buffer)
split a chart/parent bar into 'resolution' sections, figure out in which section the most volume/time was spent, by analysing a given set of (intra)bars' top/bottom/volume values. Then return price center of the bin with the highest volume, essentially marking the point of control / highest volume (poc) in the chart/parent bar.
Parameters:
tops (float ) : array of range top/high values (either from ltf or chart candles using history() function
bottoms (float ) : array of range bottom/low values (either from ltf or chart candles using history() function
values (float ) : array of range volume/1 values (either from ltf or chart candles using history() function (1s can be used for analysing candles in bucket/price range over time)
resolution (int) : amount of buckets/price ranges to sort the candle data into (analyse how much volume / time was spent in a certain bucket/price range) (default: 25)
vah_pc (float) : a threshold percentage (of values' total) for the top end of the value area (default: 80)
val_pc (float) : a threshold percentage (of values' total) for the bottom end of the value area (default: 20)
bucket_buffer (Bucket ) : optional buffer of empty Buckets to fill, if omitted a new one is created and returned. The buffer length must match the resolution
Returns: poc (price level), vah (price level), val (price level), poc_index (idx in buckets), vah_index (idx in buckets), val_index (idx in buckets), buckets (filled buffer or new)
create_profile(start_idx, tops, bottoms, values, resolution, vah_pc, val_pc, args)
split a chart/parent bar into 'resolution' sections, figure out in which section the most volume/time was spent, by analysing a given set of (intra)bars' top/bottom/volume values. Then return price center of the bin with the highest volume, essentially marking the point of control / highest volume (poc) in the chart/parent bar.
Parameters:
start_idx (int) : the bar_index at which the Profile should start drawing
tops (float ) : array of range top/high values (either from ltf or chart candles using history() function
bottoms (float ) : array of range bottom/low values (either from ltf or chart candles using history() function
values (float ) : array of range volume/1 values (either from ltf or chart candles using history() function (1s can be used for analysing candles in bucket/price range over time)
resolution (int) : amount of buckets/price ranges to sort the candle data into (analyse how much volume / time was spent in a certain bucket/price range) (default: 25)
vah_pc (float) : a threshold percentage (of values' total) for the top end of the value area (default: 80)
val_pc (float) : a threshold percentage (of values' total) for the bottom end of the value area (default: 20)
args (ProfileArgs)
Returns: poc (price level), vah (price level), val (price level), poc_index (idx in buckets), vah_index (idx in buckets), val_index (idx in buckets), buckets (filled buffer or new)
history(src, len, offset)
allows fetching an array of values from the history series with offset from current candle
Parameters:
src (int)
len (int)
offset (int)
history(src, len, offset)
allows fetching an array of values from the history series with offset from current candle
Parameters:
src (float)
len (int)
offset (int)
history(src, len, offset)
allows fetching an array of values from the history series with offset from current candle
Parameters:
src (bool)
len (int)
offset (int)
history(src, len, offset)
allows fetching an array of values from the history series with offset from current candle
Parameters:
src (string)
len (int)
offset (int)
Bucket
Fields:
idx (series int) : the index of this Bucket within the Profile starting with 0 for the lowest Bucket at the bottom of the Profile
value (series float) : the value of this Bucket, can be volume or time, for using time pass and array of 1s to the update function
top (series float) : the top of this Bucket's price range (for calculation)
btm (series float) : the bottom of this Bucket's price range (for calculation)
center (series float) : the center of this Bucket's price range (for plotting)
fraction (series float) : the fraction this Bucket's value is compared to the total of the Profile
plot_bucket_line (Line type from robbatt/lib_plot_objects/24) : the line that resembles this bucket and it's valeu in the Profile
ProfileArgs
Fields:
show_poc (series bool) : whether to plot a POC line across the Profile Box (default: true)
show_profile (series bool) : whether to plot a line for each Bucket in the Profile Box, indicating the value per Bucket (Price range), e.g. volume that occured in a certain time and price range (default: false)
show_va (series bool) : whether to plot a VAH/VAL line across the Profile Box (default: false)
show_va_fill (series bool) : whether to fill the 'value' area between VAH/VAL line (default: false)
show_background (series bool) : whether to fill the Profile Box with a background color (default: false)
show_labels (series bool) : whether to add labels to the right end of the POC/VAH/VAL line (default: false)
show_price_levels (series bool) : whether add price values to the labels to the right end of the POC/VAH/VAL line (default: false)
extend (series bool) : whether extend the Profile Box to the current candle (default: false)
default_size (series int) : the default min. width of the Profile Box (default: 30)
args_poc_line (LineArgs type from robbatt/lib_plot_objects/24) : arguments for the poc line plot
args_va_line (LineArgs type from robbatt/lib_plot_objects/24) : arguments for the va line plot
args_poc_label (LabelArgs type from robbatt/lib_plot_objects/24) : arguments for the poc label plot
args_va_label (LabelArgs type from robbatt/lib_plot_objects/24) : arguments for the va label plot
args_profile_line (LineArgs type from robbatt/lib_plot_objects/24) : arguments for the Bucket line plots
args_profile_bg (BoxArgs type from robbatt/lib_plot_objects/24)
va_fill_color (series color) : color for the va area fill plot
Profile
Fields:
start (series int) : left x coordinate for the Profile Box
end (series int) : right x coordinate for the Profile Box
resolution (series int) : the amount of buckets/price ranges the Profile will dissect the data into
vah_threshold_pc (series float) : the percentage of the total data value to mark the upper threshold for the main value area
val_threshold_pc (series float) : the percentage of the total data value to mark the lower threshold for the main value area
args (ProfileArgs) : the style arguments for the Profile Box
h (series float) : the highest price of the data
l (series float) : the lowest price of the data
total (series float) : the total data value (e.g. volume of all candles, or just one each to analyse candle distribution over time)
buckets (Bucket ) : the Bucket objects holding the data for each price range bucket
poc_bucket_index (series int) : the Bucket index in buckets, that holds the poc Bucket
vah_bucket_index (series int) : the Bucket index in buckets, that holds the vah Bucket
val_bucket_index (series int) : the Bucket index in buckets, that holds the val Bucket
poc (series float) : the according price level marking the Point Of Control
vah (series float) : the according price level marking the Value Area High
val (series float) : the according price level marking the Value Area Low
plot_poc (Line type from robbatt/lib_plot_objects/24)
plot_vah (Line type from robbatt/lib_plot_objects/24)
plot_val (Line type from robbatt/lib_plot_objects/24)
plot_poc_label (Label type from robbatt/lib_plot_objects/24)
plot_vah_label (Label type from robbatt/lib_plot_objects/24)
plot_val_label (Label type from robbatt/lib_plot_objects/24)
plot_va_fill (LineFill type from robbatt/lib_plot_objects/24)
plot_profile_bg (Box type from robbatt/lib_plot_objects/24)
Net Positions (Net Longs & Net Shorts) - By LeviathanThis script is an experimental indicator that visualizes the entering and exiting of long and short positions in the market. It also includes other useful tools, such as NL/NS Profile, NL/NS Delta, NL/NS Ratio, Volume Heatmap, Divergence finder, Relative Strength Index of Net Longs and Net Shorts, EMAs and VWMAs and more.
To avoid misinterpretation, it's important to understand some basics. The “real” ratio between net long and net short positions in a given market is always 1:1. A futures contract is an agreement between two parties to buy or sell an underlying asset at an agreed-upon price. Each contract has a long side and a short side, with one party agreeing to buy (long) and the other party agreeing to sell (short) the asset at the agreed-upon price. The long position holder anticipates that the asset's price will rise, while the short position holder expects it to fall. Because every futures contract involves both a buyer and a seller, it is impossible to have more net longs than net shorts or vice versa (in terms of the net value). For every long position opened, there must be a corresponding short position taken by another market participant (and vice versa), thus maintaining the 1:1 ratio between longs and shorts. While there can be an imbalance in the number of traders/accounts holding long and short contracts, the net value of positions held on each side remains 1 to 1.
Open Interest (OI) is a metric that tracks the number of open (unsettled) contracts in a given market. For example, Open Interest of 100 BTC means that there are currently 100 BTC worth of longs and 100 BTC worth of shorts open in the market. There may be more traders on one side holding smaller positions, and fewer traders on the other side holding larger positions, but the net value of positions on one side is equal to the net value of positions on the other side → 100 BTC in longs and 100 BTC in shorts (1:1). Consider a scenario in which a trader decides to open a long position for 1 BTC at a price of HKEX:30 ,000. For this long order to be executed, a counterparty must take the opposite side of the contract by placing an order to short 1 BTC at the same price of HKEX:30 ,000. When both the long and short orders are matched and executed, the open interest increases by 1 BTC, reflecting the addition of this new contract to the market.
Changes in Open Interest essentially tell us 3 things:
- OI Increase - new positions entered the market (both longs and shorts!)
- OI Decrease - positions exited the market (both longs and shorts!)
- OI Flat - no change in open positions due to low activity or simply lots of transfers of contracts
However, different concepts can be used to analyze sentiment, aggressiveness, and activity in the market by analyzing data such as Open Interest, price, volume, etc. This indicator combines Open Interest data and price action to simplify the visualization of positions entering and exiting the market. It is based on the following concept:
Increase in Open Interest + Increase in price = Longs Opening
Decrease in Open Interest + Decrease in price = Longs Closing
Increase in Open Interest + Decrease in price = Shorts Opening
Decrease in Open Interest + Increase in price = Shorts Closing
When "Longs Opening" occurs, the OI Delta value is added to the running total of Net Longs, and when "Longs Closing" occurs, the OI Delta value is subtracted from the running total of Net Longs.
When "Shorts Opening" occurs, the OI Delta value is added to the running total of Net Shorts, and when "Shorts Closing" occurs, the OI Delta value is subtracted from the running total of Net Shorts.
To summarize:
Net Longs: Cumulative value of Longs Opening and Longs Closing (LO - LC)
Net Shorts: Cumulative value of Shorts Opening and Shorts Closing (SO - SC)
Net Delta: Net Longs - Net Shorts
Net Ratio: Net Longs / Net Shorts
This is the fundamental logic of how this script functions, but it also includes several other tools and options. Here is an overview of the settings:
Type:
- Net Positions (display values of Net Longs, Net Shorts, Net Delta, Net Ratio as described above)
- Relative Strength (display Net Longs, Net Shorts, Net Delta, Net Ratio in the form of a momentum oscillator that measures the speed and change of movements. Same logic as RSI for price)
Display as:
- Candles (display the data in the form of candlesticks)
- Lines (display the data in the form of candlesticks)
- Columns (display the data in the form of columns)
Cumulation:
- Visible Range (data is cumulated from the first visible bar on your chart)
- Full Data (data is cumulated from the beginning)
Quoted in:
- Base Currency (all data is presented in the pair’s base currency eg. BTC)
- Quote Currency (all data is presented in the pair’s quote currency eg USDT)
OI Sources
- Pick the sources from where the data is collected (if available).
Net Positions:
- NET LONGS (show/hide Net Longs plot, choose candle colors, choose line color)
- NET SHORTS (show/hide Net Shorts plot, choose candle colors, choose line color)
- NET DELTA (show/hide Net Delta plot, choose candle colors, choose line color)
- NET RATIO (show/hide Net Ratio plot, choose candle colors, choose line color)
Moving Averages:
- Type (choose between EMA and Volume Weighted Moving Average)
- NET LONGS (show/hide NL moving average plot, choose length, choose color)
- NET SHORTS (show/hide NS moving average plot, choose length, choose color)
- NET DELTA (show/hide ND moving average plot, choose length, choose color)
- NET RATIO (show/hide NR moving average plot, choose length, choose color)
Profile:
- Profile Data (choose the source data of the profile)
- Value Area % (set the percentage width of profile’s value area)
- Positions (set the position of the profile to left or right of the visible range)
- Node Size (set the relative size of nodes to make them appear smaller or larger)
- Rows (select the amount of rows displayed by the profile to control granularity)
- POC (show/hide POC- Point Of Control and select its color)
- VA (show/hide VA- Value Area and select its color)
Divergence finder
- Source (choose the source data used by the script to compare it with price pivot points)
- Maximum distance (the maximum distance between two divergent pivot points)
- Lookback Bars Left (the number of bars to the left of the current bar that the function will consider when looking for a pivot point)
- Lookback Bars Right (the number of bars to the right of the current bar that the function will consider when looking for a pivot point)
Stats:
- Show/Hide the Stats table
- Bars Back (choose the length of data analyzed for stats in number of bars)
- Position (choose the position of the Stats table)
- Select Data you want to display in the Stats table
Additional Settings:
- Volume Heatmap (show/hide volume heatmap and select its color)
- Label Offset (select how much the plot label is shifted to the right
- Position Relative Strength Length (select the length used in the calculation)
- Value Label (show/hide OI Delta values when candles are displayed)
- Plot Labels (show/hide the labels next to the plot)
- Wicks (show/hide wick when candles are displayed)
Code used for generating profiles is taken from @KioseffTrading's "Profile Any Indicator" script (used with author's permission)